package com.whz.generic;

import lombok.experimental.UtilityClass;

import java.util.regex.Pattern;

/**
 * 乱码过滤
 *
 * @author whz
 */
@UtilityClass
public final class GarbledStringUtils {

    private static final String GARBLED_CODES = "[_\\-`~!@#$%^&*()+=|{}':;,\\\\.<>/?￥（）—【】‘；：”“’。 ，、？]";
    private static final Pattern GARBLED_CODE_PATTERN = Pattern.compile(GARBLED_CODES);

    /**
     * 判断是否是乱码
     *
     * @param input 输入字符串
     * @return true 含有乱码
     */
    public static boolean isGarbledCode(String input) {
        return GARBLED_CODE_PATTERN.matcher(input).find();
    }

    /**
     * 指定字符C 是否是特殊字符
     *
     * @param c 字符
     * @return true 是特殊字符
     */
    public static boolean isGarbledCode(char c) {
        return GARBLED_CODES.indexOf(c) > -1;
    }

    /**
     * 过滤掉输入文本中的特殊字符
     *
     * @param input 输入文本
     * @return 过滤后的文本
     */
    public static String filterGarbledCode(String input) {
        return GARBLED_CODE_PATTERN.matcher(input).replaceAll("");
    }
}